工控網首頁
>

應用設計

>

坦克炮控系統數據采集系統的開發技術

坦克炮控系統數據采集系統的開發技術

2013/1/8 10:38:15

    隨著武器裝備的不斷升級換代,性能的不斷進步,對維修后試驗技術的要求也不斷進步。新近幾年裝備部隊的主戰坦克火控系統對維修后的試驗要求相當嚴格,現行的試驗手段多為手工操縱,自動化程度低,精確度很差,新型坦克炮控系統試驗平臺的開發正是基于這一背景提出的,本文介紹了該平臺的數據采集系統的開發技術。

    1、 硬件系統設計

    1-1、被測參數分析

    按照有關規定,對維修后的坦克炮控系統需要進行靜態參數和動態參數的檢測。需檢測的靜態參數共有94±15V范圍的電壓信號,動態參數有位移、拉力、壓力、轉速、漂移等12路信號,位移、拉力信號為標準傳感器輸出信號,范圍為±5V0-5V,轉速和漂移信號為陀螺儀組輸出的檢查信號,為±15V的電壓信號。另外,為了丈量位移和拉力,需要使用液壓元件以及電磁鐵作為執行元件進行相應的操縱,故需進行相應的控制。

    1-2、數據采集卡

    數據采集卡的選擇是硬件系統建設的關鍵,基于性能的穩定性和性價比的原因,選用了研華的ISA總線產品。根據需要,使用了3PCL813B1PCL818H。這兩款板卡都可支持雙極性±5V的輸進范圍,我們另制作了一塊外圍端子板將±15V的電壓轉換為±5V[2-3]。

    PCL813B具有32路單端隔離模擬量輸進,本應用中使用它采集94路靜態電壓信號。它采用了12位分辨率A/D轉換器AD574,轉換時間為25μs,數據傳送速率達25Kbps,輸進范圍為雙極性±5V、±2.5V、±1.25V±0.625V,單極性為010V、05V02.5V01.25V,A/D轉換觸發方式為軟件觸發。

    PCL-818H是一款多功能采集卡,本應用中使用它采集動態信號及控制液壓閥和電磁鐵。它提供了5個最為常用的丈量和控制功能:12位的A/D轉換,D/A轉換,數字輸進,數字輸出和計時器/計數器。它的特點是:

    1 16路(單)或8路(雙)差分模擬量輸進;

    2 12位模數轉換,100KHZ的采樣頻率;

    3 16路數字輸進和輸出;

    4 可通過軟件改變增益的值;

    5 軟件可選擇邏輯輸進范圍(雙極性)。

    兩塊板卡使用方法基本相同,由于篇幅限制,下面僅以818H對模擬量的輸進采集為例先容采集卡的使用。

    編寫PCL-818H的程序的關鍵是使用板卡上的16個寄存器。它需要16個連續的PCI/O空間地址,每個口地址與采集板內的寄存器相對應。每個寄存器的地址是通過指定到板卡基地址的偏移量。例如,BASE+0是這個板卡的基地址,并且BASE+7表示基地址+7個字節。假如板卡的基地址是300h,BASE+7寄存器的地址就是307h,結果見表1。

           表1 寄存器的作用及相應的I/O端口地址

    PCL-818H模擬輸進的16個端口,可以構成16個單端輸進或者8對差分輸進,輸進通道的工作方式利用跳線設置,軟件控制對一個或多個通道的操縱。輸進信號經放大電路后,由一個逐次逼近式A/D轉換為12位數字信號。

    PCL-818H提供了軟件、時鐘步進和外部信號3種觸發方式。軟件觸發的觸發器是由軟件控制的,當在軟件寄存器中寫進數值后,啟動A/D轉換,這種方式適用于低速A/D轉換。時鐘步進觸發適用于轉換速度要求很高的系統,PCL-818H提供的8254定時/計數器用來為A/D提供一個固定觸起源,計數器1和計數器2級聯在一起提供了一個周期精確的觸發脈沖,非常適合于需要固定且精確的采樣頻率的系統。把外部觸發信號接在CN335,可以實現外部觸發,適用于不需要周期采樣的系統,外部信號的上升沿啟動A/D轉換。根據該系統的需要,我們選擇了軟件觸發方式。

    1-3、工控機的選擇

    工控機(IPC)是一種具備特殊性能的計算機,能在惡劣的產業生產環境下,保證系統的連續穩定運行,并能承受環境中的高(低)溫、沖擊、振動、電磁干擾、濕潤、粉塵等不利因素[4]??紤]到軍用的特殊性,我們選擇了車載使用方便的產業便攜機,型號為華北工控的REPC-815,該機具有8PCI/ISA擴展能力,液晶屏可360℃旋轉,具有防暴功能。

        

系統結構圖

    2、軟件系統的設計

    系統的軟件設計采用了VB6.0VB6.0以其易學、高效、功能強大以及所開發的系統界面友好等特點受到了眾多用戶的歡迎,在數據采集和產業控制領域得到了廣泛應用。本系統的軟件部分主要有數據采集處理和數據治理兩部分組成,實現的功能有數據采集的控制、數據處理、數據的治理以及試驗報告的輸出。下面給出了數據采集和存儲兩個關鍵環節的代碼。

    2-1、模擬電壓的讀取

    VB固然易學且功能強大,但也有其自身的弱點,比如對硬件的直接訪問僅靠VB自身是無法解決的。但是它可以通過調用板卡提供的驅動函數,實現對I/O的訪問和控制,而且支持事件驅動,這樣就使VB可以很方便地編制數據采集軟件[5]。

    Windows環境下調用驅動程序,需要在工程中添加一個模塊Driver.bas,模塊中定義了PCL-818H的所有常量,全局變量,函數,數據結構,狀態代碼和消息。可以直接在程序中調用文件中定義的這些量實現數據的讀取。在Driver.bas文件的最后定義了很多API函數,但都不是私有的,工程里的所有窗體都可以調用這些函數。模擬值的讀取分為如下5步:

    1)、打開設備

    ErrCde=DRV_DeviceOpen0,DeviceHandle

    假如ErrCde0表示成功,否則返回錯誤信息。

    2)、配置輸進通道范圍

    

    lpAIConfig.DasChan=int Channel ‘設置通道

    lpAIConfig.DasGain=0 ‘設置增益為0

    ErrCde=DRV_AIConfigDeviceHandle,lpAIConfig

    3)、讀取電壓值IConfig

    AiVolIn.chan=lpAIConfig.DasChan ‘電壓輸進通道

    AiVolIn.Gain=lpAIConfig.DasGain ‘電壓輸進增益

    AiVolIn.TrigMode=AiCtrMode ‘觸發模式

    AiVolIn.voltage=DRV_GetAddressvoltage ‘讀進電壓值

    ErrCde=DRV_AIVotageInDeviceHandle,AivolIn

    4)、返回值

    fnGetValue=voltage

    5)、封閉設備

    ErrCde=DRV_DeviceCloseDeviceHandle

    2-2、數據庫的訪問

    VB6.0提供了相當強的數據庫存儲能力,可以直接支持Microsorft Access數據庫[6].VB在單機環境訪問數據庫的技術有DAOADO,既可用控件也可用代碼編程實現。本應用中利用控件并分歧適,故采用了比較靈活的ADO代碼編程方法。假定在C:\mydatabase\mydata.mdb數據庫中存在”pkxt”表格,name、testdatagiveddata、conclusion是其字段名,界面中幾個Text文本框中顯示了試驗數據,將數據寫進數據庫的代碼如下:

    Private Sub Form_Load() ‘ 窗體裝載事件

    Dim strSQL As String

    Set cn = New ADODB.Connection ‘建立新的連接

    cn.Provider = "microsoft.jet.oledb.3.51" ‘ 數據庫引擎

    cn.ConnectionString = "C:\mydatabase\mydata.mdb" ‘數據庫路徑

    cn.Open ‘打開連接

    Set adors = New ADODB.Recordset ‘打開“pkxt”表的一個記錄集

    adors.LockType = adLockOptimistic

    strSQL = "select " & "from pkxt"

    adors.Source = strSQL

    Set adors.ActiveConnection = cn

    adors.Open

    adors.AddNew

    End Sub

    Private Sub Form_UnloadCancel As Integer ‘卸載窗體事件

    cn.Close ‘封閉連接

    End Sub

    ‘保存按鈕的單擊事件中將界面中的數據寫進記錄集

    Private Sub Command1_Click()

    adors.Fields"name" = Text1.Text ‘檢測項目名稱

    adors.Fields"testdata" = ValText2.Text ‘檢測值

    adors.Fields"giveddata" = ValText3.Text ‘給定的指標值

    adors.Fields"conclusion" = Text4.Text ‘檢測結論

    adors.Update

 

    adors.Close

    End Sub

    2-3、報表輸出

    對報表的輸出,VB6.0提供了很多方法,其中DataReport設計器和Printer對象方法特點鮮明。利用Printer對象方法需要編寫較多的代碼,但極具靈活性;DataReport設計器是VB6.0新增的功能,它只提供了最基本的功能,但具有非常易用的特點。由于本系統數據比較簡單,所以使用了DataReport設計器實現試驗報告的輸出。

    3、結論

    經過反復調試,我們開發的基于VB的工控機數據采集系統實現了預期的各項功能,達到了各項技術指標要求。該系統在我軍某坦克中修單位使用了近半年,界面友好,功能豐富,運行可靠,有著較高的推廣應用價值,并且對其它行業多參數數據采集系統有參考價值。

 

審核編輯(
王靜
)
投訴建議

提交

查看更多評論
其他資訊

查看更多

超越傳統直覺,MATLAB/Simulink助力重型機械的智能化轉型

新大陸自動識別精彩亮相2024華南國際工業博覽會

派拓網絡被Forrester評為XDR領域領導者

智能工控,存儲強基 | 海康威視帶來精彩主題演講

展會|Lubeworks路博流體供料系統精彩亮相AMTS展會